﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Tizer.Utilities
{
    public class ImageHelper
    {
        /// <summary>
        /// Открывает диалоговое окно для выбора файла, настроенное на получение файлов изображения
        /// </summary>
        /// <returns>Объект FileInfo выбранного файла</returns>
        public static FileInfo OpenFile()
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Multiselect = false;
            openFileDialog.Filter = "Image File (*.jpg;*.jpeg;*.bmp;*.png) | *.jpg;*.jpeg;*.bmp;*.png";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                return new FileInfo(openFileDialog.FileName);
            }
            return null;
        }

        /// <summary>
        /// Конвертирует изображение в любом формате в изображение в формате jpeg
        /// </summary>
        /// <param name="imageByte">Исходный массив байт изображения</param>
        /// <returns>Массив байт изображения в формате jpeg</returns>
        public static byte[] ConvertToJpeg(byte[] imageByte)
        {
            try
            {
                using (Image img = Image.FromStream(new MemoryStream(imageByte)))
                {
                    MemoryStream outputStream = new MemoryStream();
                    img.Save(outputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    return outputStream.ToArray();
                }
            }
            catch
            {
                return null;
            }
        }
    }
}
